Results for spec@ext_transform_feedback@structs struct-array-elem run interface

Overview

Result: fail

Back to summary

Details

Detail Value
Returncode 1
Time 0:00:00.343976
Stdout
Output v.a[0] element 0: expected 100, got -858993460
Output v.a[0] element 1: expected 200, got -858993460
Output v.a[0] element 2: expected 300, got -858993460
Output v.a[0] element 3: expected 400, got -858993460
Output v.a[1] element 0: expected 101, got -858993460
Output v.a[1] element 1: expected 201, got -858993460
Output v.a[1] element 2: expected 301, got -858993460
Output v.a[1] element 3: expected 401, got -858993460
Output v.b[0] element 0: expected 500, got -858993460
Output v.b[1] element 0: expected 501, got -858993460
Output v.b[2] element 0: expected 502, got -858993460
Output v.b[3] element 0: expected 503, got -858993460
Output v.c[0] element 0: expected 600.000000, got -107374176.000000
Output v.c[0] element 1: expected 700.000000, got -107374176.000000
Output v.c[0] element 2: expected 800.000000, got -107374176.000000
Output v.c[1] element 0: expected 601.000000, got -107374176.000000
Output v.c[1] element 1: expected 701.000000, got -107374176.000000
Output v.c[1] element 2: expected 801.000000, got -107374176.000000
Output v.c[2] element 0: expected 602.000000, got -107374176.000000
Output v.c[2] element 1: expected 702.000000, got -107374176.000000
Output v.c[2] element 2: expected 802.000000, got -107374176.000000
Vertex shader:
#version 150
#define DECLARE_VARYING(DIR, TYPE, NAME) DIR Blk { flat TYPE NAME; } blk
#define VARYING(NAME) blk.NAME
struct S { ivec4[2] a; uint[4] b; vec3[3] c; };
in vec4 pos;
DECLARE_VARYING(out, S, v);
void main()
{
  gl_Position = pos;
  for (int i = 0; i < 4; i++) {
    if (i < 2) VARYING(v).a[i] = ivec4(100, 200, 300, 400) + i;
    if (i < 4) VARYING(v).b[i] = 500u + uint(i);
    if (i < 3) VARYING(v).c[i] = vec3(600.0, 700.0, 800.0) + float(i);
  }
}

Fragment shader:
#version 150
#define DECLARE_VARYING(DIR, TYPE, NAME) DIR Blk { flat TYPE NAME; } blk
#define VARYING(NAME) blk.NAME
struct S { ivec4[2] a; uint[4] b; vec3[3] c; };
DECLARE_VARYING(in, S, v);
out vec4 color;
void main()
{
  bool pass = true;
  for (int i = 0; i < 3; i++) {
    if (i < 2 && VARYING(v).a[i] != ivec4(100, 200, 300, 400) + i) pass = false;
    if (i < 4 && VARYING(v).b[i] != 500u + uint(i)) pass = false;
    if (i < 3 && VARYING(v).c[i] != vec3(600.0, 700.0, 800.0) + float(i)) pass = false;
  }
  if (pass)
    color = vec4(0.0, 1.0, 0.0, 1.0);
  else
    color = vec4(1.0, 0.0, 0.0, 1.0);
}

Stderr
SWR detected AVX2
vert shader  0x7f3aa4203000
frag shader  0x7f3aa4201000
vert shader  0x7f3aa41ff000
frag shader  0x7f3aa41fd000
so shader    0x7f3aa41fb000
fetch shader 0x7f3aa41f9000
SWR destroy screen!
Environment
PIGLIT_SOURCE_DIR="/home/ilia/src/piglit" PIGLIT_PLATFORM="mixed_glx_egl"
Command /home/ilia/src/piglit/bin/ext_transform_feedback-structs struct-array-elem run interface -auto -fbo
dmesg

        

Back to summary